gusucode.com > MATLAB与控制系统仿真实践 源代码 > MATLAB与控制系统仿真实践 源代码/第十七章/eg17_2.m

    %查看原系统
num=1;den=[1,5,4,0];
G0=tf(num,den);
rlocus(G0);
step(feedback(3*G0,1))
%确定系统的期望主导极点
sigma=0.2
zeta=((log(1/sigma))^2/((pi)^2+(log(1/sigma))^2))^(1/2);
wn=1/zeta;
p=[1 2*zeta*wn wn*wn];
s=roots(p)
%求取校正环节
s1=s(1);
ng=1;
dg=[1 5 4 0];
ngv=polyval(ng,s1);
dgv=polyval(dg,s1);
g=ngv/dgv;
theta=angle(g);
phic=pi-theta;
phi=angle(s1);
thetaz=(phi+phic)/2;
thetap=(phi-phic)/2;
zc=real(s1)-imag(s1)/tan(thetaz);
pc=real(s1)-imag(s1)/tan(thetap);
nc=[1 -zc];
dc=[1 -pc];
Gc=tf(nc,dc)

%查看校正后系统
G0=tf(ng,dg);
rlocus(Gc*G0)
step(feedback(32*Gc*G0,1))